(function($){
var myflow = $.myflow;

var roles={};//存放角色
$.extend(true, myflow.editors, {
	
	formEditor : function(){//表单属性按钮绑定弹出层增加表单属性
		var _props,_k,_div,_src,_r;
		this.init = function(props, k, div, src, r){
			_props=props; _k=k; _div=div; _src=src; _r=r;
			
			$('<input style="width:50%!important;" id="startProperty" />').val(props[_k].value).change(function(){
				props[_k].value = $(this).val();
			}).appendTo('#'+_div);
			$("<a href='javascript:void(0);' class='form_btn' onclick='javascript:formTan();' >设置属性值</a>").appendTo('#'+_div);
			$('#'+_div).data('editor', this);
		}
		this.destroy = function(){
			$('#'+_div+' input').each(function(){
				_props[_k].value = $(this).val();
			});
		}
	},
	candidateGroupsEditor : function(){//人员授权
		var _props,_k,_div,_src,_r;
		this.init = function(props, k, div, src, r){
			_props=props; _k=k; _div=div; _src=src; _r=r;
			
			$('<input style="width:50%!important;" id="startProperty" />').val(props[_k].value).change(function(){
				props[_k].value = $(this).val();
			}).appendTo('#'+_div);
			$("<a href='javascript:void(0);' class='form_btn' onclick='javascript:showCandidateGroup(this);' >人员分配</a>").appendTo('#'+_div);
			$('#'+_div).data('editor', this);
		}
		this.destroy = function(){
			$('#'+_div+' input').each(function(){
				_props[_k].value = $(this).val();
			});
		}
	},
	fromTemplateEditor : function(){//人员授权
		var _props,_k,_div,_src,_r;
		this.init = function(props, k, div, src, r){
			_props=props; _k=k; _div=div; _src=src; _r=r;
			
			$('<input style="width:50%!important;" id="startProperty" readonly/>').val(props[_k].value).change(function(){
				props[_k].value = $(this).val();
			}).appendTo('#'+_div);
			$("<a href='javascript:void(0);' class='form_btn' onclick='javascript:showfromTemplate(this);' >选择表单</a>").appendTo('#'+_div);
			$('#'+_div).data('editor', this);
		}
		this.destroy = function(){
			$('#'+_div+' input').each(function(){
				_props[_k].value = $(this).val();
			});
		}
	},
	inputEditor : function(){
		var _props,_k,_div,_src,_r;
		this.init = function(props, k, div, src, r){
			_props=props; _k=k; _div=div; _src=src; _r=r;
			
//			$('<input style="width:100%;"/>').val(props[_k].value).change(function(){
			
			$('<input />').val(props[_k].value).change(function(){
				props[_k].value = $(this).val();
			}).appendTo('#'+_div);
			
			$('#'+_div).data('editor', this);
		}
		this.destroy = function(){
			$('#'+_div+' input').each(function(){
				_props[_k].value = $(this).val();
			});
		}
	},
	inputHiddenEditor : function(){
		var _props,_k,_div,_src,_r;
		this.init = function(props, k, div, src, r){
			_props=props; _k=k; _div=div; _src=src; _r=r;
			
//			$('<input style="width:100%;"/>').val(props[_k].value).change(function(){
			
			$('<input type="hidden" />').val(props[_k].value).change(function(){
				props[_k].value = $(this).val();
			}).appendTo('#'+_div);
			
			$('#'+_div).data('editor', this);
		}
		this.destroy = function(){
			$('#'+_div+' input').each(function(){
				_props[_k].value = $(this).val();
			});
		}
	},
	selectEditor : function(arg,userarg){
		var _props,_k,_div,_src,_r;
		this.init = function(props, k, div, src, r){
			_props=props; _k=k; _div=div; _src=src; _r=r;
//			var sle = $('<select  style="width:100%;"/>').val(props[_k].value).change(function(){
			var sle = $('<select  />').val(props[_k].value).change(function(){
				props[_k].value = $(this).val();
			}).appendTo('#'+_div);
			if(typeof arg === 'string'){
	
				arg=arg+"?time="+new Date();
				 var opts={};
				if("roles"==userarg && typeof roles!='undefined' && roles.length>0){
					
					opts=roles;
				   if(opts && opts.length){
					   
						for(var idx=0; idx<opts.length; idx++){
							sle.append('<option value="'+opts[idx].id+'">'+opts[idx].name+'</option>');
						}
						sle.val(_props[_k].value);
				  }
					
				}else{//请求获取角色
					
					$.ajax({
						   type: "GET",
						   url: arg,
						   dataType:'json',
						   async:false,
						   success: function(data){
							  var opts = data.list;
							  roles=opts;
							  if(opts && opts.length){
										for(var idx=0; idx<opts.length; idx++){
											sle.append('<option value="'+opts[idx].id+'">'+opts[idx].name+'</option>');
										}
										sle.val(_props[_k].value);
							}
							
						   }
						});
					
				}
				
				
				
				
			}else {
				for(var idx=0; idx<arg.length; idx++){
					sle.append('<option value="'+arg[idx].value+'">'+arg[idx].name+'</option>');
				}
				sle.val(_props[_k].value);
			}
			
			$('#'+_div).data('editor', this);
		};
		this.destroy = function(){
			$('#'+_div+' input').each(function(){
				_props[_k].value = $(this).val();
			});
		};
	}
});

})(jQuery);